<?php

namespace App\Handlers\Type;

use Carbon\Carbon;
use Hanson\Vbot\Contact\Friends;
use Hanson\Vbot\Contact\Groups;
use Hanson\Vbot\Message\Text;
use Hanson\Vbot\Support\File;
use Illuminate\Support\Collection;

class TextType
{
    public static function messageHandler(Collection $message, Friends $friends, Groups $groups)
    {
        if ($message['type'] === 'text') {
            /**
             * 文本
             */
            // type:text

            // 特有属性
            // 参数  类型  描述
            // isAt    bool    是否 @ 自己
            // pure    string  去掉 @ 人的文本

            // content vs pure
            // pure. pure 是过滤掉 @ 以及昵称后的文本，不仅过滤 @ 自己，还能过滤 @ 别人，但仅过滤一次，也就是无法处理多个 @ 的情况。
            // content. 与 pureText 相反，你在微信客户端看到什么内容就是什么内容。

            // @我自动回复
            if ($message['isAt']) {
                Text::send($message['from']['UserName'], 'I was @');
            }

            if (str_contains($message['content'], '图灵')) {
                $content = str_replace('图灵', '', $message['content']);
                //发送到图灵机器人接口
                $url = "http://www.tuling123.com/openapi/api?key=c407416112434017a7e3431bdcf7b417&info=" . $content;
                // 获取图灵机器人返回的内容
                $content = file_get_contents($url);
                // 对内容json解码
                $content = json_decode($content);
                Text::send($message['from']['UserName'], $content->text);
            }

            if ($message['content'] === 'time') {
                $datetime = Carbon::parse(vbot('config')->get('server.time'));
                Text::send($message['from']['UserName'], 'Running:' . $datetime->diffInHours() . '小时');
            }

            if ($message['content'] === '拉我') {
                $username = $groups->getUsernameByNickname('田大爷测试群');
                $groups->addMember($username, $message['from']['UserName']);
            }

            if ($message['content'] === '叫我') {
                $username = $friends->getUsernameByNickname('所有的伟大 源于一个勇敢的开始');
                Text::send($username, '主人');
            }

            if ($message['content'] === '头像') {
                $avatar = $friends->getAvatar($message['from']['UserName']);
                File::saveTo(vbot('config')['user_path'] . 'avatar/' . $message['from']['UserName'] . '.jpg', $avatar);
            }

            if ($message['content'] === '报名') {
                $username = $groups->getUsernameByNickname('田大爷测试群');
                $groups->addMember($username, $message['from']['UserName']);
            }
        }
    }
}
